home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / SWAG / SWAGA_C / COMM.SWG / 0001_Routines for AVATAR.pas next >
Pascal/Delphi Source File  |  1993-05-28  |  4KB  |  148 lines

  1. {
  2. SEAN PALMER
  3.  
  4. > Would you mind sharing that source w/us? I would like to
  5. > add AVATAR support to my doors, yet don't have those FSC docs.
  6.  
  7. Here are some FSC Docs I got off a FIDO echo...
  8.  
  9. The basic commands are:   (AVT/0 FSC-0025)
  10.  
  11.    <^L>    -       clear the current Window and set current attribute
  12.                    to default. In the basic session this means:
  13.                    Clear the screen and set its attribute to 3.
  14.  
  15.    <^Y>    -       Read two Bytes from the modem. Send the first one
  16.                    to the screen as many times as the binary value
  17.                    of the second one. This is the exception where
  18.                    the two Bytes may have their high bit set. Do
  19.                    not reset it here!
  20.  
  21.    <^V> <^A> <attr> - Set the color attribute to <attr>. The default
  22.                    attribute remains unchanged. However, all Text
  23.                    will be displayed in <attr> Until the next ^V^A,
  24.                    ^V^B, or ^L.
  25.  
  26.    <^V> <^B>   -   Turn the high bit of current attribute on. In
  27.                    other Words, turn blink on.
  28.  
  29.    <^V> <^C>   -   Move the cursor one line up. Do nothing, if you
  30.                    already are at the top line of the current
  31.                    Window.
  32.  
  33.    <^V> <^D>   -   Move the cursor one line down. Do nothing if you
  34.                    already are at the bottom line of the current
  35.                    Window.
  36.  
  37.    <^V> <^E>   -   Move the cursor one column to the left. Do nothing
  38.                    if you already are at the leftmost column of the
  39.                    current Window.
  40.  
  41.    <^V> <^F>   -   Move the cursor one column to the right. Do nothing
  42.                    if you already are at the rightmost column of the
  43.                    current Window.
  44.  
  45.    <^V> <^G>   -   Clear the rest of the line in the current Window
  46.                    using the current attribute (not to be confused
  47.                    With the default attribute).
  48.  
  49.    <^V> <^H> <row> <col>   - Move the cursor to the <row> <col>
  50.                    position Within the current Window.
  51.  
  52. New Commands (brief definitions) (AVT/0+ FSC-0037)
  53.  
  54.    <^V><^I>     -  Turn insert mode ON. It stays on Until any other AVT/0
  55.                    command except <^Y> and <^V><^Y> is encountered after
  56.                    which it is turned off;
  57.  
  58.    <^V><^J><numlines><upper><left><lower><right> - scroll area up;
  59.  
  60.    <^V><^K><numlines><upper><left><lower><right> - scroll area down;
  61.  
  62.    <^V><^L><attr><lines><columns>  - clear area, set attribute;
  63.  
  64.    <^V><^M><attr><Char><lines><columns>  - initialize area, set attribute;
  65.  
  66.    <^V><^N>     -  delete Character, scroll rest of line left;
  67.  
  68.    <^V><^Y><numChars><Char>[...]<count>  -  Repeat pattern.
  69.  
  70. and here is some source I use For AVATAR codes.
  71. }
  72.  
  73. Unit Avatar;  {these Functions return avatar codes as Strings}
  74. Interface
  75.  
  76. {AVT/0+ FSC-0025}
  77.  
  78. Const
  79.  clearScr : String = ^L;
  80.  blink    : String = ^V^B;
  81.  up       : String = ^V^C;
  82.  dn       : String = ^V^D;
  83.  lf       : String = ^V^E;
  84.  rt       : String = ^V^F;
  85.  cleol    : String = ^V^G;
  86.  
  87. Function rep(c : Char; b : Byte) : String;
  88. Function attr(a : Byte) : String;
  89. Function goxy(x, y : Byte) : String;
  90.  
  91. {AVT/0+ FSC-0037}
  92.  
  93. Const
  94.  
  95. insMode : String = ^V^I;
  96. delChar : String = ^V^N;
  97.  
  98. Function scrollUp(n, l, t, r, b : Byte) : String;
  99. Function scrollDn(n, l, t, r, b : Byte) : String;
  100. Function clear(a, w, h : Byte) : String;
  101. Function fill(c : Char; a, w, h : Byte) : String;
  102. Function pattern(s : String; n : Byte) : String;
  103.  
  104. Implementation
  105.  
  106. Function rep(c : Char; b : Byte) : String;
  107. begin
  108.   rep := ^Y + c + Char(b);
  109. end;
  110.  
  111. Function attr(a : Byte) : String;
  112. begin
  113.   attr := ^V^A + Char(a and $7F);
  114. end;
  115.  
  116. Function goxy(x, y : Byte) : String;
  117. begin
  118.   goxy := ^V^H + Char(y) + Char(x);
  119. end;
  120.  
  121. Function scrollUp(n, l, t, r, b : Byte) : String;
  122. begin
  123.   scrollUp := ^V^J + Char(n) + Char(t) + Char(l) + Char(b) + Char(r);
  124. end;
  125.  
  126. Function scrollDn(n, l, t, r, b : Byte) : String;
  127. begin
  128.   scrollDn := ^V^K + Char(n) + Char(t) + Char(l) + Char(b) + Char(r);
  129. end;
  130.  
  131. Function clear(a, w, h : Byte) : String;
  132. begin
  133.   clear := ^V^L + Char(a) + Char(h) + Char(w);
  134. end;
  135.  
  136. Function fill(c : Char; a, w, h : Byte) : String;
  137. begin
  138.   fill := ^V^M + c + Char(a) + Char(h) + Char(w);
  139. end;
  140.  
  141. Function pattern(s : String; n : Byte) : String;
  142. begin
  143.   pattern := ^V^Y + s[0] + s + Char(n);
  144. end;
  145.  
  146. end.
  147.  
  148.